package com.zl.quickdoc.model;

import java.util.LinkedList;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.github.javaparser.ast.CompilationUnit;
import com.zl.quickdoc.resolver.converter.AbstractJavaDocTag;

/**
 * 接口业务模块,分类
 *
 * @author zhouliang
 *
 */
public class ApiModule {
    
    @JsonIgnore
    private CompilationUnit javaUnit;
    /**
     * 注释标签
     */
    @JsonIgnore
    private List<AbstractJavaDocTag<?>> docTags;
    
    /**
     * 包路径
     */
    private String packagePath;
    
    /**
     * 类名
     */
    private String className;
    /**
     * 类名
     */
    private String simpleName;
    
    /**
     * 隐藏
     */
    private boolean hiddenFlag=false;
    
    /**
     * 标题
     */
    private String title;

    /**
     * 模块描述
     */
    private String description;
    
    /**
     * 排序
     */
    private int orderBy=0;
    
    /**
     * 接口方法集合
     */
    private List<ApiAction> apiActions = new LinkedList<>();

    public CompilationUnit getJavaUnit() {
        return javaUnit;
    }

    public void setJavaUnit(CompilationUnit javaUnit) {
        this.javaUnit = javaUnit;
    }

    public List<AbstractJavaDocTag<?>> getDocTags() {
        return docTags;
    }

    public void setDocTags(List<AbstractJavaDocTag<?>> docTags) {
        this.docTags = docTags;
    }
    
    public String getPackagePath() {
        return packagePath;
    }

    public void setPackagePath(String packagePath) {
        this.packagePath = packagePath;
    }

    public String getClassName() {
        return className;
    }

    public void setClassName(String className) {
        this.className = className;
    }

    public String getSimpleName() {
        return simpleName;
    }

    public void setSimpleName(String simpleName) {
        this.simpleName = simpleName;
    }

    public boolean getHiddenFlag() {
        return hiddenFlag;
    }

    public void setHiddenFlag(boolean hiddenFlag) {
        this.hiddenFlag = hiddenFlag;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public int getOrderBy() {
        return orderBy;
    }

    public void setOrderBy(int orderBy) {
        this.orderBy = orderBy;
    }

    public List<ApiAction> getApiActions() {
        return apiActions;
    }

    public void setApiActions(List<ApiAction> apiActions) {
        this.apiActions = apiActions;
    }
}
